/**
 * 封装axios，拦截器内对请求和相应进行预处理
 */
// import * as _A from '../js/demo'
// let service = axios.create({})
// service.defaults.headers.post['Content-Type'] = 'application/json'
// service.defaults.headers.post['X-Requested-With'] = 'XMLHttpRequest'

// service.interceptors.request.use(
//   (config) => {
//     if (
//       config.url == 'http://172.20.50.48:21100/authorityservice/login/integrate'
//     ) {
//       config.token = ''
//       let securityKey = _A.msSecretKey //这个全局变量在configData.js中
//       let headersData = egisV2.util.EncryptUtil.MSUtil.getRequestHeaders(
//         config.token,
//         securityKey
//       )
//       for (let hName in headersData) {
//         config.headers.common[hName] = headersData[hName]
//       }
//       return config
//     }
//     //设置服务校验的header相关参数
//     let accessToken =
//       (config.params ? config.params.token : config.token) ||
//       egisV2.MicroService.serviceInfo.token ||
//       ''
//     let securityKey = _A.msSecretKey //这个全局变量在configData.js中

//     let headersData = egisV2.util.EncryptUtil.MSUtil.getRequestHeaders(
//       accessToken,
//       securityKey
//     )
//     for (let hName in headersData) {
//       config.headers.common[hName] = headersData[hName]
//     }

//     return config
//   },
//   (error) => {
//     console.error('请求超时')
//     return Promise.resolve(error)
//   }
// )

// service.interceptors.response.use(
//   (response) => {
//     if (response && response.status === 200) {
//       return response
//     } else {
//       reject({ message: '网络异常' })
//       console.error('网络异常')
//     }
//   },
//   (error) => {
//     return Promise.reject(error)
//   }
// )

// export function get(url, param = {}, axConf = null) {
//   return new Promise((resolve, reject) => {
//     service(
//       {
//         method: 'get',
//         url,
//         params: param,
//       },
//       axConf
//     )
//       .then((res) => {
//         if (res.data.success == true) {
//           resolve(res)
//         } else {
//           console.log('something error')
//           console.error(res.data.message)
//           reject(res)
//         }
//       })
//       .catch((err) => {
//         reject(err)
//       })
//   })
// }

// export function post(url, param = {}, axConf = null) {
//   return new Promise((resolve, reject) => {
//     service(
//       {
//         method: 'post',
//         url,
//         data: param,
//       },
//       axConf
//     )
//       .then((res) => {
//         if (res.data.success == true) {
//           resolve(res)
//         } else {
//           console.log('something error')
//           console.error(res.data.message)
//           reject(res)
//         }
//       })
//       .catch((err) => {
//         reject(err)
//       })
//   })
// }

// export function getTile(url, param = {}) {
//   return new Promise((resolve, reject) => {
//     service({
//       method: 'get',
//       url: url,
//       params: param,
//       responseType: 'blob',
//     })
//       .then((res) => {
//         resolve(res)
//       })
//       .catch((err) => {
//         reject(err)
//       })
//   })
// }

let service = axios.create({})
service.defaults.headers.post['Content-Type'] = 'application/json'
service.defaults.headers.post['X-Requested-With'] = 'XMLHttpRequest'

service.interceptors.request.use(
  (config) => {
    if (
      config.url == 'http://172.20.50.48:21100/authorityservice/login/integrate'
    ) {
      config.token = ''
      let securityKey = msSecretKey //这个全局变量在configData.js中
      let headersData = egisV2.util.EncryptUtil.MSUtil.getRequestHeaders(
        config.token,
        securityKey
      )
      for (let hName in headersData) {
        config.headers.common[hName] = headersData[hName]
      }
      return config
    }
    //设置服务校验的header相关参数
    let accessToken =
      (config.params ? config.params.token : config.token) ||
      egisV2.MicroService.serviceInfo.token ||
      ''
    let securityKey = msSecretKey //这个全局变量在configData.js中

    let headersData = egisV2.util.EncryptUtil.MSUtil.getRequestHeaders(
      accessToken,
      securityKey
    )
    for (let hName in headersData) {
      config.headers.common[hName] = headersData[hName]
    }

    return config
  },
  (error) => {
    console.error('请求超时')
    return Promise.resolve(error)
  }
)

service.interceptors.response.use(
  (response) => {
    if (response && response.status === 200) {
      return response
    } else {
      reject({ message: '网络异常' })
      console.error('网络异常')
    }
  },
  (error) => {
    return Promise.reject(error)
  }
)

function get(url, param = {}, axConf = null) {
  return new Promise((resolve, reject) => {
    service(
      {
        method: 'get',
        url,
        params: param,
      },
      axConf
    )
      .then((res) => {
        if (res.data.success == true) {
          resolve(res)
        } else {
          console.log('something error')
          console.error(res.data.message)
          reject(res)
        }
      })
      .catch((err) => {
        reject(err)
      })
  })
}

function post(url, param = {}, axConf = null) {
  return new Promise((resolve, reject) => {
    service(
      {
        method: 'post',
        url,
        data: param,
      },
      axConf
    )
      .then((res) => {
        if (res.data.success == true) {
          resolve(res)
        } else {
          console.log('something error')
          console.error(res.data.message)
          reject(res)
        }
      })
      .catch((err) => {
        reject(err)
      })
  })
}

function getTile(url, param = {}) {
  return new Promise((resolve, reject) => {
    service({
      method: 'get',
      url: url,
      params: param,
      responseType: 'blob',
    })
      .then((res) => {
        resolve(res)
      })
      .catch((err) => {
        reject(err)
      })
  })
}
